const webpack = require('webpack')

//生产环境标记
const IS_PRODUCTION = process.env.NODE_ENV === 'production'
//配置引用cdn的js、css地址
const assetsCDN = {
    css: [
        'https://unpkg.com/element-ui@2.13.2/lib/theme-chalk/index.css'
    ],
    js: [
        'https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.min.js',
        'https://cdn.bootcdn.net/ajax/libs/vue-router/3.0.2/vue-router.min.js',
        'https://cdn.bootcdn.net/ajax/libs/vuex/3.1.0/vuex.min.js',
        'https://cdn.bootcdn.net/ajax/libs/axios/0.18.1/axios.min.js',
        'https://unpkg.com/element-ui@2.13.2/lib/index.js',
        'https://cdn.bootcdn.net/ajax/libs/echarts/5.0.1/echarts.min.js'
    ]
}
//配置打包时使用CDN节点（加入externals外部扩展）， 忽略打包的第三方库
//左面放package.json中的扩展的名称,右面放项目依赖的名称(项目初始化要用的名称)
const externals = {
	// 属性名称 vue, 表示遇到 import xxx from 'vue' 这类引入 'vue'的，不去 node_modules 中找，而是去找全局变量 Vue（其他的为VueRouter、Vuex、axios、ELEMENT、echarts，注意全局变量是一个确定的值，不能修改为其他值，修改为其他大小写或者其他值会报错，若有异议可留言）
	vue: 'Vue',
	'vue-router': 'VueRouter',
	vuex: 'Vuex',
	axios: 'axios',
	'element-ui': 'ELEMENT',
	'echarts': 'echarts'
}

module.exports = {
	
	publicPath: './',
	outputDir: "vuetool", //打包后的项目目录名称
	
	// 首页访问优化: 关闭生成的map.js 文件  https://blog.csdn.net/z591102/article/details/108076212
	productionSourceMap: false,  

	devServer: {
		host: '0.0.0.0',
		port: '8083',
		https: false,
		
		proxy: {
			'/qt': { //匹配所有以 '/qt' 开头的请求路径
				target: 'http://qt.gtimg.cn', //代理目标基础路径（后端接口地址）
				changeOrigin: true, //用于控制请求头中的host值
				ws: true, //用于支持websocket
				pathRewrite: {
					'^/qt': '',//重写交给服务器的地址，如果没有这句，服务器收到的地址会带/qt
				},
			},
			'/gt': { //匹配所有以 '/gt' 开头的请求路径
				target: 'https://data.gtimg.cn', //代理目标基础路径（后端接口地址）
				changeOrigin: true, //用于控制请求头中的host值
				ws: true, //用于支持websocket
				pathRewrite: {
					'^/gt': '',//重写交给服务器的地址，如果没有这句，服务器收到的地址会带/gt
				},
			},
			'/echarts': { //匹配所有以 '/echarts' 开头的请求路径
				target: 'https://echarts.apache.org', //代理目标基础路径（后端接口地址）
				changeOrigin: true, //用于控制请求头中的host值
				ws: true, //用于支持websocket
				pathRewrite: {
					'^/echarts': '',//重写交给服务器的地址，如果没有这句，服务器收到的地址会带/echarts
				},
			},
			'/money': { //匹配所有以 '/money' 开头的请求路径
				target: 'http://img1.money.126.net', //代理目标基础路径（后端接口地址）
				changeOrigin: true, //用于控制请求头中的host值
				ws: true, //用于支持websocket
				pathRewrite: {
					'^/money': '',//重写交给服务器的地址，如果没有这句，服务器收到的地址会带/money
				},
			},
			'/music': { //匹配所有以 '/music' 开头的请求路径
				target: 'https://autumnfish.cn', //代理目标基础路径（后端接口地址）
				changeOrigin: true, //用于控制请求头中的host值
				ws: true, //用于支持websocket
				pathRewrite: {
					'^/music': '',//重写交给服务器的地址，如果没有这句，服务器收到的地址会带/music
				},
			},
		},
	},
	chainWebpack(config) {
		if (IS_PRODUCTION) {
			config.plugin('html').tap(args => {
				args[0].cdn = assetsCDN
				return args
			})
			//视为一个外部库，而不将它打包进来
			config.externals(externals)
		}
	}, 
}